class Animal:
    def __init__(self,type):
        self.type=type
        
    def eat(self):
        print(f"---{self.type}--eat----",end="")
    def run(self):
        print("---Animal---run----")

class Dog(Animal):
    def bark(self):
        print("----dog---汪汪叫---")

    # 子类该方法的实现方式和父类不同，需要重新定义，方法的重写
    def eat(self):
        # 调用父类的方法 super() 代表父类对象
        super().eat()
        print("-骨头---")

class Cat(Animal):
    # 给猫这个子类添加一个属性，age
    def __init__(self,type,age):
        # self.type=type
        super().__init__(type) # type是父类的属性
        self.age=age


    def eat(self):
        super().eat()
        print("-鱼---")

class BosiCat(Cat):
    # 给波斯猫这个子类添加一个属性，color
    def __init__(self,type,age,color):
        super().__init__(type,age)
        self.color=color

    def houkong(self):
        print(f"{self.type},{self.age},{self.color}后空翻")


dog = Dog("狗")
dog.eat()

cat= Cat("猫",3)
cat.eat()

bosi = BosiCat("猫",2,"黄色")
bosi.houkong()